package Clases.domain;

import java.util.*;

import pos.data.*;

public class GestorUsuario {

	public boolean tieneCausa(Usuario us, String barrio, String zona,
			String desc) {
		boolean res = false;
		Iterator it = us.getCausas().iterator();
		while (it.hasNext()) {
			Causa causa = (Causa) it.next();
			if (causa.getBarrio().equals(barrio)
					&& causa.getZona().equals(zona)
					&& causa.getCausaDescripcion().equals(desc)) {
				res = true;
			}
		}
		return res;
	}

	public static List getUsuarios() {
		List usuarios = (new JDBCUsuarioDAO()).selectAllUsuarios();
		return usuarios;
	}

	public static int numPersonasNo() {
		return (new JDBCUsuarioDAO()).contarUsuariosNo();
	}

	public static int numPersonasNoTipo(String motivo) {
		return (new JDBCUsuarioDAO()).contarUsuariosNoTipo(motivo);
	}

	// Aqui se envia al JDBCUsuarioDAO la insercion del usuario en la base de
	// datos
	public static void insertarUsuario(Usuario usu) {
		(new JDBCUsuarioDAO()).insertUsuario(usu.getNick(), usu.getEmail(), usu
				.getPassword(), usu.getZona(), usu.getBarrio(),
				usu.getAceite(), usu.getBasuraGenerada(),
				usu.getMedicamentos(), usu.getMotivo(), usu.getOrganico(), usu
						.getPapel(), usu.getPilas(), usu.getPlastico(), usu
						.getRecicla(), usu.getVidrio());
	}

	public static List usuariosTotalesZona(String barrio, String zona) {
		List usu = new LinkedList();
		List usuarios = (new JDBCUsuarioDAO()).selectAllUsuarios();
		Iterator it = usuarios.iterator();
		while (it.hasNext()) {
			Usuario u = (Usuario) it.next();
			if (u.getBarrio().equals(barrio) && (u.getZona().equals(zona))) {
				usu.add(u);
			}
		}

		return usu;
	}

	public static List usuariosSiReciclan(String barrio, String zona) {
		List usut = usuariosTotalesZona(barrio, zona);
		List usuSi = new LinkedList();
		Iterator it = usut.iterator();
		while (it.hasNext()) {
			Usuario u = (Usuario) it.next();
			if (u.getRecicla()) {
				usuSi.add(u);
			}
		}
		return usuSi;
	}

	public static double porcentajeZona(String barrio, String zona) {
		double porcentajezona=0.0;
		List ur = usuariosSiReciclan(barrio, zona);
		double urz = (ur.size())*1.0;
		List utz = usuariosTotalesZona(barrio, zona);
		double tz = (utz.size())*1.0;
		if ((urz!=0)||(tz!=0)) {
			porcentajezona =((urz/tz)*100);
		} 
		return porcentajezona;
	}

}
